<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE RankNTypes #-}</span><span>
</span><span id="line-2"></span><span class="hs-comment">-- | This module provides very basic lens functionality, without extra dependencies.</span><span>
</span><span id="line-3"></span><span class="hs-comment">--</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- For the documentation of the combinators see &lt;http://hackage.haskell.org/package/lens lens&gt; package.</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- This module uses the same vocabulary.</span><span>
</span><span id="line-6"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.Compat.Lens</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-7"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Types</span></span><span>
</span><span id="line-8"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#Lens"><span class="hs-identifier">Lens</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-9"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#Lens%27"><span class="hs-identifier">Lens'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-10"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#Traversal"><span class="hs-identifier">Traversal</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-11"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#Traversal%27"><span class="hs-identifier">Traversal'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-12"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** LensLike</span></span><span>
</span><span id="line-13"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier">LensLike</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike%27"><span class="hs-identifier">LensLike'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>    </span><span class="annot"><span class="hs-comment">-- ** rank-1 types</span></span><span>
</span><span id="line-16"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier">Getting</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#AGetter"><span class="hs-identifier">AGetter</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-18"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier">ASetter</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-19"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier">ALens</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-20"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens%27"><span class="hs-identifier">ALens'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-21"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Getter</span></span><span>
</span><span id="line-22"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#view"><span class="hs-identifier">view</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-23"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#use"><span class="hs-identifier">use</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-24"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#getting"><span class="hs-identifier">getting</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-25"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Setter</span></span><span>
</span><span id="line-26"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#set"><span class="hs-identifier">set</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-27"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#over"><span class="hs-identifier">over</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-28"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Fold</span></span><span>
</span><span id="line-29"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#toDListOf"><span class="hs-identifier">toDListOf</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-30"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#toListOf"><span class="hs-identifier">toListOf</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-31"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#toSetOf"><span class="hs-identifier">toSetOf</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Lens</span></span><span>
</span><span id="line-33"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#cloneLens"><span class="hs-identifier">cloneLens</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-34"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#aview"><span class="hs-identifier">aview</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-35"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Common lenses</span></span><span>
</span><span id="line-36"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#_1"><span class="hs-identifier">_1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#_2"><span class="hs-identifier">_2</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Operators</span></span><span>
</span><span id="line-38"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#%26"><span class="hs-operator">(&amp;)</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-39"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#%5E."><span class="hs-operator">(^.)</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-40"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#.~"><span class="hs-operator">(.~)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%3F~"><span class="hs-operator">(?~)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%25~"><span class="hs-operator">(%~)</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-41"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#.%3D"><span class="hs-operator">(.=)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%3F%3D"><span class="hs-operator">(?=)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%25%3D"><span class="hs-operator">(%=)</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-42"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#%5E%23"><span class="hs-operator">(^#)</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-43"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#%23~"><span class="hs-operator">(#~)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%23%25~"><span class="hs-operator">(#%~)</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-44"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Internal Comonads</span></span><span>
</span><span id="line-45"></span><span>    </span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier">Pretext</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-46"></span><span>    </span><span class="annot"><span class="hs-comment">-- * Cabal developer info</span></span><span>
</span><span id="line-47"></span><span>    </span><span class="annot"><span class="hs-comment">-- $development</span></span><span>
</span><span id="line-48"></span><span>    </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-49"></span><span>
</span><span id="line-50"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-51"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Prelude.html"><span class="hs-identifier">Distribution.Compat.Prelude</span></a></span><span>
</span><span id="line-52"></span><span>
</span><span id="line-53"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#"><span class="hs-identifier">Control.Monad.State.Class</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#MonadState"><span class="hs-identifier">MonadState</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#gets"><span class="hs-identifier">gets</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#modify"><span class="hs-identifier">modify</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-54"></span><span>
</span><span id="line-55"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="Distribution.Compat.DList.html"><span class="hs-identifier">Distribution.Compat.DList</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">DList</span></span><span>
</span><span id="line-56"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.html#"><span class="hs-identifier">Data.Set</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Set</span></span><span>
</span><span id="line-57"></span><span>
</span><span id="line-58"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-59"></span><span class="hs-comment">-- Types</span><span>
</span><span id="line-60"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-61"></span><span>
</span><span id="line-62"></span><span class="hs-keyword">type</span><span> </span><span id="LensLike"><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-var">LensLike</span></a></span></span><span>  </span><span id="local-6989586621679624960"><span class="annot"><a href="#local-6989586621679624960"><span class="hs-identifier hs-type">f</span></a></span></span><span> </span><span id="local-6989586621679624959"><span class="annot"><a href="#local-6989586621679624959"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624958"><span class="annot"><a href="#local-6989586621679624958"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span id="local-6989586621679624957"><span class="annot"><a href="#local-6989586621679624957"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679624956"><span class="annot"><a href="#local-6989586621679624956"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679624957"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624960"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624956"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624959"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624960"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624958"><span class="hs-identifier hs-type">t</span></a></span><span>
</span><span id="line-63"></span><span class="hs-keyword">type</span><span> </span><span id="LensLike%27"><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike%27"><span class="hs-identifier hs-var">LensLike'</span></a></span></span><span> </span><span id="local-6989586621679624955"><span class="annot"><a href="#local-6989586621679624955"><span class="hs-identifier hs-type">f</span></a></span></span><span> </span><span id="local-6989586621679624954"><span class="annot"><a href="#local-6989586621679624954"><span class="hs-identifier hs-type">s</span></a></span></span><span>   </span><span id="local-6989586621679624953"><span class="annot"><a href="#local-6989586621679624953"><span class="hs-identifier hs-type">a</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679624953"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624955"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624953"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624954"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624955"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624954"><span class="hs-identifier hs-type">s</span></a></span><span>
</span><span id="line-64"></span><span>
</span><span id="line-65"></span><span class="hs-keyword">type</span><span> </span><span id="Lens"><span class="annot"><a href="Distribution.Compat.Lens.html#Lens"><span class="hs-identifier hs-var">Lens</span></a></span></span><span>      </span><span id="local-6989586621679624952"><span class="annot"><a href="#local-6989586621679624952"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624951"><span class="annot"><a href="#local-6989586621679624951"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span id="local-6989586621679624950"><span class="annot"><a href="#local-6989586621679624950"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679624949"><span class="annot"><a href="#local-6989586621679624949"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679624948"><span class="annot"><a href="#local-6989586621679624948"><span class="hs-identifier hs-type">f</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-type">Functor</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624948"><span class="hs-identifier hs-type">f</span></a></span><span>     </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-type">LensLike</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624948"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624952"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624951"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624950"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624949"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-66"></span><span class="hs-keyword">type</span><span> </span><span id="Traversal"><span class="annot"><a href="Distribution.Compat.Lens.html#Traversal"><span class="hs-identifier hs-var">Traversal</span></a></span></span><span> </span><span id="local-6989586621679624947"><span class="annot"><a href="#local-6989586621679624947"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624946"><span class="annot"><a href="#local-6989586621679624946"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span id="local-6989586621679624945"><span class="annot"><a href="#local-6989586621679624945"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679624944"><span class="annot"><a href="#local-6989586621679624944"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679624943"><span class="annot"><a href="#local-6989586621679624943"><span class="hs-identifier hs-type">f</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Applicative"><span class="hs-identifier hs-type">Applicative</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624943"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-type">LensLike</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624943"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624947"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624946"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624945"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624944"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-67"></span><span>
</span><span id="line-68"></span><span class="hs-keyword">type</span><span> </span><span id="Lens%27"><span class="annot"><a href="Distribution.Compat.Lens.html#Lens%27"><span class="hs-identifier hs-var">Lens'</span></a></span></span><span>      </span><span id="local-6989586621679624942"><span class="annot"><a href="#local-6989586621679624942"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624941"><span class="annot"><a href="#local-6989586621679624941"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Lens"><span class="hs-identifier hs-type">Lens</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624942"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624942"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624941"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624941"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-69"></span><span class="hs-keyword">type</span><span> </span><span id="Traversal%27"><span class="annot"><a href="Distribution.Compat.Lens.html#Traversal%27"><span class="hs-identifier hs-var">Traversal'</span></a></span></span><span> </span><span id="local-6989586621679624940"><span class="annot"><a href="#local-6989586621679624940"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624939"><span class="annot"><a href="#local-6989586621679624939"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Traversal"><span class="hs-identifier hs-type">Traversal</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624940"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624940"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624939"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624939"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-70"></span><span>
</span><span id="line-71"></span><span class="hs-keyword">type</span><span> </span><span id="Getting"><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-var">Getting</span></a></span></span><span> </span><span id="local-6989586621679624938"><span class="annot"><a href="#local-6989586621679624938"><span class="hs-identifier hs-type">r</span></a></span></span><span> </span><span id="local-6989586621679624937"><span class="annot"><a href="#local-6989586621679624937"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624936"><span class="annot"><a href="#local-6989586621679624936"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-type">LensLike</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-type">Const</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624938"><span class="hs-identifier hs-type">r</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679624937"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624937"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624936"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624936"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-72"></span><span>
</span><span id="line-73"></span><span class="hs-keyword">type</span><span> </span><span id="AGetter"><span class="annot"><a href="Distribution.Compat.Lens.html#AGetter"><span class="hs-identifier hs-var">AGetter</span></a></span></span><span> </span><span id="local-6989586621679624935"><span class="annot"><a href="#local-6989586621679624935"><span class="hs-identifier hs-type">s</span></a></span></span><span>   </span><span id="local-6989586621679624934"><span class="annot"><a href="#local-6989586621679624934"><span class="hs-identifier hs-type">a</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-type">LensLike</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-type">Const</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624934"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span>     </span><span class="annot"><a href="#local-6989586621679624935"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624935"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624934"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624934"><span class="hs-identifier hs-type">a</span></a></span><span>  </span><span class="hs-comment">-- this doesn't exist in 'lens'</span><span>
</span><span id="line-74"></span><span class="hs-keyword">type</span><span> </span><span id="ASetter"><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-var">ASetter</span></a></span></span><span> </span><span id="local-6989586621679624933"><span class="annot"><a href="#local-6989586621679624933"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624932"><span class="annot"><a href="#local-6989586621679624932"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span id="local-6989586621679624931"><span class="annot"><a href="#local-6989586621679624931"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679624930"><span class="annot"><a href="#local-6989586621679624930"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-type">LensLike</span></a></span><span> </span><span class="annot"><a href="../../base/src/Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-type">Identity</span></a></span><span>      </span><span class="annot"><a href="#local-6989586621679624933"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624932"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624931"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624930"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-75"></span><span class="hs-keyword">type</span><span> </span><span id="ALens"><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier hs-var">ALens</span></a></span></span><span>   </span><span id="local-6989586621679624929"><span class="annot"><a href="#local-6989586621679624929"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624928"><span class="annot"><a href="#local-6989586621679624928"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span id="local-6989586621679624927"><span class="annot"><a href="#local-6989586621679624927"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679624926"><span class="annot"><a href="#local-6989586621679624926"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-type">LensLike</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624927"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624926"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679624929"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624928"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624927"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624926"><span class="hs-identifier hs-type">b</span></a></span><span>
</span><span id="line-76"></span><span>
</span><span id="line-77"></span><span class="hs-keyword">type</span><span> </span><span id="ALens%27"><span class="annot"><a href="Distribution.Compat.Lens.html#ALens%27"><span class="hs-identifier hs-var">ALens'</span></a></span></span><span> </span><span id="local-6989586621679624925"><span class="annot"><a href="#local-6989586621679624925"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679624924"><span class="annot"><a href="#local-6989586621679624924"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier hs-type">ALens</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624925"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624925"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624924"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624924"><span class="hs-identifier hs-type">a</span></a></span><span>
</span><span id="line-78"></span><span>
</span><span id="line-79"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-80"></span><span class="hs-comment">-- Getter</span><span>
</span><span id="line-81"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span id="local-6989586621679625224"><span id="local-6989586621679625225"><span class="annot"><a href="Distribution.Compat.Lens.html#view"><span class="hs-identifier hs-type">view</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-type">Getting</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625225"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625224"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625225"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625224"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>  </span><span class="annot"><a href="#local-6989586621679625225"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
</span><span id="line-84"></span><span id="view"><span class="annot"><span class="annottext">view :: forall a s. Getting a s a -&gt; s -&gt; a
</span><a href="Distribution.Compat.Lens.html#view"><span class="hs-identifier hs-var hs-var">view</span></a></span></span><span> </span><span id="local-6989586621679624923"><span class="annot"><span class="annottext">Getting a s a
</span><a href="#local-6989586621679624923"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624922"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624922"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Const a s -&gt; a
forall {k} a (b :: k). Const a b -&gt; a
</span><a href="../../base/src/Data.Functor.Const.html#getConst"><span class="hs-identifier hs-var hs-var">getConst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Getting a s a
</span><a href="#local-6989586621679624923"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Const a a
forall {k} a (b :: k). a -&gt; Const a b
</span><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-var">Const</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624922"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-85"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#view"><span class="hs-pragma hs-type">view</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-86"></span><span>
</span><span id="line-87"></span><span id="local-6989586621679625210"><span id="local-6989586621679625212"><span id="local-6989586621679625213"><span class="annot"><a href="Distribution.Compat.Lens.html#use"><span class="hs-identifier hs-type">use</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#MonadState"><span class="hs-identifier hs-type">MonadState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625213"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625212"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-type">Getting</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625210"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625213"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625210"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625212"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625210"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-88"></span><span id="use"><span class="annot"><span class="annottext">use :: forall s (m :: * -&gt; *) a. MonadState s m =&gt; Getting a s a -&gt; m a
</span><a href="Distribution.Compat.Lens.html#use"><span class="hs-identifier hs-var hs-var">use</span></a></span></span><span> </span><span id="local-6989586621679624917"><span class="annot"><span class="annottext">Getting a s a
</span><a href="#local-6989586621679624917"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(s -&gt; a) -&gt; m a
forall s (m :: * -&gt; *) a. MonadState s m =&gt; (s -&gt; a) -&gt; m a
</span><a href="../../mtl/src/Control.Monad.State.Class.html#gets"><span class="hs-identifier hs-var">gets</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Getting a s a -&gt; s -&gt; a
forall a s. Getting a s a -&gt; s -&gt; a
</span><a href="Distribution.Compat.Lens.html#view"><span class="hs-identifier hs-var">view</span></a></span><span> </span><span class="annot"><span class="annottext">Getting a s a
</span><a href="#local-6989586621679624917"><span class="hs-identifier hs-var">l</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-89"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#use"><span class="hs-pragma hs-type">use</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-90"></span><span>
</span><span id="line-91"></span><span class="hs-comment">-- | @since 2.4</span><span>
</span><span id="line-92"></span><span class="hs-comment">--</span><span>
</span><span id="line-93"></span><span class="hs-comment">-- &gt;&gt;&gt; (3 :: Int) ^. getting (+2) . getting show</span><span>
</span><span id="line-94"></span><span class="hs-comment">-- &quot;5&quot;</span><span>
</span><span id="line-95"></span><span id="local-6989586621679625201"><span id="local-6989586621679625202"><span id="local-6989586621679625203"><span class="annot"><a href="Distribution.Compat.Lens.html#getting"><span class="hs-identifier hs-type">getting</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625203"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625202"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-type">Getting</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625201"><span class="hs-identifier hs-type">r</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625203"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625202"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-96"></span><span id="getting"><span class="annot"><span class="annottext">getting :: forall s a r. (s -&gt; a) -&gt; Getting r s a
</span><a href="Distribution.Compat.Lens.html#getting"><span class="hs-identifier hs-var hs-var">getting</span></a></span></span><span> </span><span id="local-6989586621679624916"><span class="annot"><span class="annottext">s -&gt; a
</span><a href="#local-6989586621679624916"><span class="hs-identifier hs-var">k</span></a></span></span><span> </span><span id="local-6989586621679624915"><span class="annot"><span class="annottext">a -&gt; Const r a
</span><a href="#local-6989586621679624915"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">r -&gt; Const r s
forall {k} a (b :: k). a -&gt; Const a b
</span><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-var">Const</span></a></span><span> </span><span class="annot"><span class="annottext">(r -&gt; Const r s) -&gt; (s -&gt; r) -&gt; s -&gt; Const r s
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Const r a -&gt; r
forall {k} a (b :: k). Const a b -&gt; a
</span><a href="../../base/src/Data.Functor.Const.html#getConst"><span class="hs-identifier hs-var hs-var">getConst</span></a></span><span> </span><span class="annot"><span class="annottext">(Const r a -&gt; r) -&gt; (s -&gt; Const r a) -&gt; s -&gt; r
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Const r a
</span><a href="#local-6989586621679624915"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Const r a) -&gt; (s -&gt; a) -&gt; s -&gt; Const r a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">s -&gt; a
</span><a href="#local-6989586621679624916"><span class="hs-identifier hs-var">k</span></a></span><span>
</span><span id="line-97"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#getting"><span class="hs-pragma hs-type">getting</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-98"></span><span>
</span><span id="line-99"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-100"></span><span class="hs-comment">-- Setter</span><span>
</span><span id="line-101"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-102"></span><span>
</span><span id="line-103"></span><span id="local-6989586621679625191"><span id="local-6989586621679625192"><span id="local-6989586621679625193"><span id="local-6989586621679625194"><span class="annot"><a href="Distribution.Compat.Lens.html#set"><span class="hs-identifier hs-type">set</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625194"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625193"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625192"><span class="hs-identifier hs-type">a</span></a></span><span>  </span><span class="annot"><a href="#local-6989586621679625191"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625191"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625194"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625193"><span class="hs-identifier hs-type">t</span></a></span></span></span></span></span><span>
</span><span id="line-104"></span><span id="set"><span class="annot"><span class="annottext">set :: forall s t a b. ASetter s t a b -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#set"><span class="hs-identifier hs-var hs-var">set</span></a></span></span><span> </span><span id="local-6989586621679624913"><span class="annot"><span class="annottext">ASetter s t a b
</span><a href="#local-6989586621679624913"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624912"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624912"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ASetter s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
forall s t a b. ASetter s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#over"><span class="hs-identifier hs-var">over</span></a></span><span> </span><span class="annot"><span class="annottext">ASetter s t a b
</span><a href="#local-6989586621679624913"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; a -&gt; b
forall a b. a -&gt; b -&gt; a
</span><a href="../../base/src/GHC.Base.html#const"><span class="hs-identifier hs-var">const</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624912"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-105"></span><span>
</span><span id="line-106"></span><span id="local-6989586621679625182"><span id="local-6989586621679625183"><span id="local-6989586621679625184"><span id="local-6989586621679625185"><span class="annot"><a href="Distribution.Compat.Lens.html#over"><span class="hs-identifier hs-type">over</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625185"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625184"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625183"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625182"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625183"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625182"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625185"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625184"><span class="hs-identifier hs-type">t</span></a></span></span></span></span></span><span>
</span><span id="line-107"></span><span id="over"><span class="annot"><span class="annottext">over :: forall s t a b. ASetter s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#over"><span class="hs-identifier hs-var hs-var">over</span></a></span></span><span> </span><span id="local-6989586621679624910"><span class="annot"><span class="annottext">ASetter s t a b
</span><a href="#local-6989586621679624910"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624909"><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624909"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679624908"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624908"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Identity t -&gt; t
forall a. Identity a -&gt; a
</span><a href="../../base/src/Data.Functor.Identity.html#runIdentity"><span class="hs-identifier hs-var hs-var">runIdentity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ASetter s t a b
</span><a href="#local-6989586621679624910"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679624906"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624906"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">b -&gt; Identity b
forall a. a -&gt; Identity a
</span><a href="../../base/src/Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-var">Identity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624909"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624906"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624908"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-108"></span><span>
</span><span id="line-109"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-110"></span><span class="hs-comment">-- Fold</span><span>
</span><span id="line-111"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span id="local-6989586621679625170"><span id="local-6989586621679625172"><span class="annot"><a href="Distribution.Compat.Lens.html#toDListOf"><span class="hs-identifier hs-type">toDListOf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-type">Getting</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.DList.html#DList"><span class="hs-identifier hs-type">DList.DList</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625172"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679625170"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625172"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625170"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.DList.html#DList"><span class="hs-identifier hs-type">DList.DList</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625172"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
</span><span id="line-114"></span><span id="toDListOf"><span class="annot"><span class="annottext">toDListOf :: forall a s. Getting (DList a) s a -&gt; s -&gt; DList a
</span><a href="Distribution.Compat.Lens.html#toDListOf"><span class="hs-identifier hs-var hs-var">toDListOf</span></a></span></span><span> </span><span id="local-6989586621679624904"><span class="annot"><span class="annottext">Getting (DList a) s a
</span><a href="#local-6989586621679624904"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624903"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624903"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Const (DList a) s -&gt; DList a
forall {k} a (b :: k). Const a b -&gt; a
</span><a href="../../base/src/Data.Functor.Const.html#getConst"><span class="hs-identifier hs-var hs-var">getConst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Getting (DList a) s a
</span><a href="#local-6989586621679624904"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679624902"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624902"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">DList a -&gt; Const (DList a) a
forall {k} a (b :: k). a -&gt; Const a b
</span><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-var">Const</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; DList a
forall a. a -&gt; DList a
</span><a href="Distribution.Compat.DList.html#singleton"><span class="hs-identifier hs-var">DList.singleton</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624902"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624903"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-115"></span><span>
</span><span id="line-116"></span><span id="local-6989586621679625165"><span id="local-6989586621679625166"><span class="annot"><a href="Distribution.Compat.Lens.html#toListOf"><span class="hs-identifier hs-type">toListOf</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-type">Getting</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.DList.html#DList"><span class="hs-identifier hs-type">DList.DList</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625166"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679625165"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625166"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625165"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="#local-6989586621679625166"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">]</span></span></span><span>
</span><span id="line-117"></span><span id="toListOf"><span class="annot"><span class="annottext">toListOf :: forall a s. Getting (DList a) s a -&gt; s -&gt; [a]
</span><a href="Distribution.Compat.Lens.html#toListOf"><span class="hs-identifier hs-var hs-var">toListOf</span></a></span></span><span> </span><span id="local-6989586621679624900"><span class="annot"><span class="annottext">Getting (DList a) s a
</span><a href="#local-6989586621679624900"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">DList a -&gt; [a]
forall a. DList a -&gt; [a]
</span><a href="Distribution.Compat.DList.html#runDList"><span class="hs-identifier hs-var">DList.runDList</span></a></span><span> </span><span class="annot"><span class="annottext">(DList a -&gt; [a]) -&gt; (s -&gt; DList a) -&gt; s -&gt; [a]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Getting (DList a) s a -&gt; s -&gt; DList a
forall a s. Getting (DList a) s a -&gt; s -&gt; DList a
</span><a href="Distribution.Compat.Lens.html#toDListOf"><span class="hs-identifier hs-var">toDListOf</span></a></span><span> </span><span class="annot"><span class="annottext">Getting (DList a) s a
</span><a href="#local-6989586621679624900"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-118"></span><span>
</span><span id="line-119"></span><span id="local-6989586621679625159"><span id="local-6989586621679625161"><span class="annot"><a href="Distribution.Compat.Lens.html#toSetOf"><span class="hs-identifier hs-type">toSetOf</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-type">Getting</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set.Set</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625161"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679625159"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625161"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625159"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../containers/src/Data.Set.Internal.html#Set"><span class="hs-identifier hs-type">Set.Set</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625161"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
</span><span id="line-120"></span><span id="toSetOf"><span class="annot"><span class="annottext">toSetOf :: forall a s. Getting (Set a) s a -&gt; s -&gt; Set a
</span><a href="Distribution.Compat.Lens.html#toSetOf"><span class="hs-identifier hs-var hs-var">toSetOf</span></a></span></span><span> </span><span id="local-6989586621679624898"><span class="annot"><span class="annottext">Getting (Set a) s a
</span><a href="#local-6989586621679624898"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624897"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624897"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Const (Set a) s -&gt; Set a
forall {k} a (b :: k). Const a b -&gt; a
</span><a href="../../base/src/Data.Functor.Const.html#getConst"><span class="hs-identifier hs-var hs-var">getConst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Getting (Set a) s a
</span><a href="#local-6989586621679624898"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679624896"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624896"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Set a -&gt; Const (Set a) a
forall {k} a (b :: k). a -&gt; Const a b
</span><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-var">Const</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; Set a
forall a. a -&gt; Set a
</span><a href="../../containers/src/Data.Set.Internal.html#singleton"><span class="hs-identifier hs-var">Set.singleton</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624896"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624897"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-123"></span><span class="hs-comment">-- Lens</span><span>
</span><span id="line-124"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-125"></span><span>
</span><span id="line-126"></span><span id="local-6989586621679625152"><span id="local-6989586621679625153"><span id="local-6989586621679625154"><span id="local-6989586621679625155"><span class="annot"><a href="Distribution.Compat.Lens.html#aview"><span class="hs-identifier hs-type">aview</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier hs-type">ALens</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625155"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625154"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625153"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625152"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625155"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625153"><span class="hs-identifier hs-type">a</span></a></span></span></span></span></span><span>
</span><span id="line-127"></span><span id="aview"><span class="annot"><span class="annottext">aview :: forall s t a b. ALens s t a b -&gt; s -&gt; a
</span><a href="Distribution.Compat.Lens.html#aview"><span class="hs-identifier hs-var hs-var">aview</span></a></span></span><span> </span><span id="local-6989586621679624894"><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624894"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pretext a b t -&gt; a
forall a b t. Pretext a b t -&gt; a
</span><a href="Distribution.Compat.Lens.html#pretextPos"><span class="hs-identifier hs-var">pretextPos</span></a></span><span>  </span><span class="annot"><span class="annottext">(Pretext a b t -&gt; a) -&gt; (s -&gt; Pretext a b t) -&gt; s -&gt; a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624894"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Pretext a b b
forall a b. a -&gt; Pretext a b b
</span><a href="Distribution.Compat.Lens.html#pretextSell"><span class="hs-identifier hs-var">pretextSell</span></a></span><span>
</span><span id="line-128"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#aview"><span class="hs-pragma hs-type">aview</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-129"></span><span>
</span><span id="line-130"></span><span class="hs-comment">{-
lens :: (s -&gt; a) -&gt; (s -&gt; a -&gt; s) -&gt; Lens' s a
lens sa sbt afb s = sbt s &lt;$&gt; afb (sa s)
-}</span><span>
</span><span id="line-134"></span><span>
</span><span id="line-135"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-136"></span><span class="hs-comment">-- Common</span><span>
</span><span id="line-137"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-138"></span><span>
</span><span id="line-139"></span><span id="local-6989586621679625139"><span id="local-6989586621679625140"><span id="local-6989586621679625141"><span class="annot"><a href="Distribution.Compat.Lens.html#_1"><span class="hs-identifier hs-type">_1</span></a></span><span> </span><span class="hs-glyph">::</span><span>  </span><span class="annot"><a href="Distribution.Compat.Lens.html#Lens"><span class="hs-identifier hs-type">Lens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625141"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679625140"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625139"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679625140"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679625141"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625139"><span class="hs-identifier hs-type">b</span></a></span></span></span></span><span>
</span><span id="line-140"></span><span id="_1"><span class="annot"><span class="annottext">_1 :: forall a c b. Lens (a, c) (b, c) a b
</span><a href="Distribution.Compat.Lens.html#_1"><span class="hs-identifier hs-var hs-var">_1</span></a></span></span><span> </span><span id="local-6989586621679624889"><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624889"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679624888"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624888"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679624887"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621679624887"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(b -&gt; c -&gt; (b, c)) -&gt; c -&gt; b -&gt; (b, c)
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621679624887"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">(b -&gt; (b, c)) -&gt; f b -&gt; f (b, c)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624889"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624888"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-141"></span><span>
</span><span id="line-142"></span><span id="local-6989586621679625123"><span id="local-6989586621679625124"><span id="local-6989586621679625125"><span class="annot"><a href="Distribution.Compat.Lens.html#_2"><span class="hs-identifier hs-type">_2</span></a></span><span> </span><span class="hs-glyph">::</span><span>  </span><span class="annot"><a href="Distribution.Compat.Lens.html#Lens"><span class="hs-identifier hs-type">Lens</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625125"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679625124"><span class="hs-identifier hs-type">a</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625125"><span class="hs-identifier hs-type">c</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="#local-6989586621679625123"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679625124"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625123"><span class="hs-identifier hs-type">b</span></a></span></span></span></span><span>
</span><span id="line-143"></span><span id="_2"><span class="annot"><span class="annottext">_2 :: forall c a b. Lens (c, a) (c, b) a b
</span><a href="Distribution.Compat.Lens.html#_2"><span class="hs-identifier hs-var hs-var">_2</span></a></span></span><span> </span><span id="local-6989586621679624882"><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624882"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679624881"><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621679624881"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679624880"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624880"><span class="hs-identifier hs-var">a</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">,</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">c
</span><a href="#local-6989586621679624881"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">(b -&gt; (c, b)) -&gt; f b -&gt; f (c, b)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624882"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624880"><span class="hs-identifier hs-var">a</span></a></span><span>
</span><span id="line-144"></span><span>
</span><span id="line-145"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-146"></span><span class="hs-comment">-- Operators</span><span>
</span><span id="line-147"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-148"></span><span>
</span><span id="line-149"></span><span class="hs-comment">-- | '&amp;' is a reverse application operator</span><span>
</span><span id="line-150"></span><span id="local-6989586621679625117"><span id="local-6989586621679625118"><span class="annot"><a href="Distribution.Compat.Lens.html#%26"><span class="hs-operator hs-type">(&amp;)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679625118"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625118"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625117"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625117"><span class="hs-identifier hs-type">b</span></a></span></span></span><span>
</span><span id="line-151"></span><span id="%26"><span class="annot"><span class="annottext">&amp; :: forall a b. a -&gt; (a -&gt; b) -&gt; b
</span><a href="Distribution.Compat.Lens.html#%26"><span class="hs-operator hs-var hs-var">(&amp;)</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((a -&gt; b) -&gt; a -&gt; b) -&gt; a -&gt; (a -&gt; b) -&gt; b
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; b) -&gt; a -&gt; b
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">($)</span></a></span><span>
</span><span id="line-152"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">&amp;</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-153"></span><span class="hs-keyword">infixl</span><span> </span><span class="hs-number">1</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%26"><span class="hs-operator hs-type">&amp;</span></a></span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span class="hs-keyword">infixl</span><span> </span><span class="hs-number">8</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%5E."><span class="hs-operator hs-type">^.</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%5E%23"><span class="hs-operator hs-type">^#</span></a></span><span>
</span><span id="line-156"></span><span class="hs-keyword">infixr</span><span> </span><span class="hs-number">4</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#.~"><span class="hs-operator hs-type">.~</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%25~"><span class="hs-operator hs-type">%~</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%3F~"><span class="hs-operator hs-type">?~</span></a></span><span>
</span><span id="line-157"></span><span class="hs-keyword">infixr</span><span> </span><span class="hs-number">4</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%23~"><span class="hs-operator hs-type">#~</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%23%25~"><span class="hs-operator hs-type">#%~</span></a></span><span>
</span><span id="line-158"></span><span class="hs-keyword">infixr</span><span> </span><span class="hs-number">4</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#.%3D"><span class="hs-operator hs-type">.=</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%25%3D"><span class="hs-operator hs-type">%=</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#%3F%3D"><span class="hs-operator hs-type">?=</span></a></span><span>
</span><span id="line-159"></span><span>
</span><span id="line-160"></span><span id="local-6989586621679625110"><span id="local-6989586621679625111"><span class="annot"><a href="Distribution.Compat.Lens.html#%5E."><span class="hs-operator hs-type">(^.)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679625111"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Getting"><span class="hs-identifier hs-type">Getting</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625110"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625111"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625110"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625110"><span class="hs-identifier hs-type">a</span></a></span></span></span><span>
</span><span id="line-161"></span><span id="local-6989586621679624879"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624879"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="%5E."><span class="annot"><span class="annottext">^. :: forall s a. s -&gt; Getting a s a -&gt; a
</span><a href="Distribution.Compat.Lens.html#%5E."><span class="hs-operator hs-var hs-var">^.</span></a></span></span><span> </span><span id="local-6989586621679624878"><span class="annot"><span class="annottext">Getting a s a
</span><a href="#local-6989586621679624878"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Const a s -&gt; a
forall {k} a (b :: k). Const a b -&gt; a
</span><a href="../../base/src/Data.Functor.Const.html#getConst"><span class="hs-identifier hs-var hs-var">getConst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Getting a s a
</span><a href="#local-6989586621679624878"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Const a a
forall {k} a (b :: k). a -&gt; Const a b
</span><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-var">Const</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624879"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-162"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">^.</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-163"></span><span>
</span><span id="line-164"></span><span id="local-6989586621679624874"><span id="local-6989586621679624875"><span id="local-6989586621679624876"><span id="local-6989586621679624877"><span class="annot"><a href="Distribution.Compat.Lens.html#.~"><span class="hs-operator hs-type">(.~)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624877"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624876"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624875"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624874"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624874"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624877"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624876"><span class="hs-identifier hs-type">t</span></a></span></span></span></span></span><span>
</span><span id="line-165"></span><span id=".~"><span class="annot"><span class="annottext">.~ :: forall s t a b. ASetter s t a b -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#.~"><span class="hs-operator hs-var hs-var">(.~)</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ASetter s t a b -&gt; b -&gt; s -&gt; t
forall s t a b. ASetter s t a b -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#set"><span class="hs-identifier hs-var">set</span></a></span><span>
</span><span id="line-166"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">.~</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-167"></span><span>
</span><span id="line-168"></span><span id="local-6989586621679625100"><span id="local-6989586621679625101"><span id="local-6989586621679625102"><span id="local-6989586621679625103"><span class="annot"><a href="Distribution.Compat.Lens.html#%3F~"><span class="hs-operator hs-type">(?~)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625103"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625102"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625101"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625100"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625100"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625103"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625102"><span class="hs-identifier hs-type">t</span></a></span></span></span></span></span><span>
</span><span id="line-169"></span><span id="local-6989586621679624873"><span class="annot"><span class="annottext">ASetter s t a (Maybe b)
</span><a href="#local-6989586621679624873"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="%3F~"><span class="annot"><span class="annottext">?~ :: forall s t a b. ASetter s t a (Maybe b) -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#%3F~"><span class="hs-operator hs-var hs-var">?~</span></a></span></span><span> </span><span id="local-6989586621679624872"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624872"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ASetter s t a (Maybe b) -&gt; Maybe b -&gt; s -&gt; t
forall s t a b. ASetter s t a b -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#set"><span class="hs-identifier hs-var">set</span></a></span><span> </span><span class="annot"><span class="annottext">ASetter s t a (Maybe b)
</span><a href="#local-6989586621679624873"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">b -&gt; Maybe b
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624872"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-170"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">?~</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-171"></span><span>
</span><span id="line-172"></span><span id="local-6989586621679624868"><span id="local-6989586621679624869"><span id="local-6989586621679624870"><span id="local-6989586621679624871"><span class="annot"><a href="Distribution.Compat.Lens.html#%25~"><span class="hs-operator hs-type">(%~)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624871"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624870"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624869"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624868"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679624869"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624868"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624871"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679624870"><span class="hs-identifier hs-type">t</span></a></span></span></span></span></span><span>
</span><span id="line-173"></span><span id="%25~"><span class="annot"><span class="annottext">%~ :: forall s t a b. ASetter s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#%25~"><span class="hs-operator hs-var hs-var">(%~)</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ASetter s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
forall s t a b. ASetter s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#over"><span class="hs-identifier hs-var">over</span></a></span><span>
</span><span id="line-174"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">%~</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-175"></span><span>
</span><span id="line-176"></span><span id="local-6989586621679625088"><span id="local-6989586621679625089"><span id="local-6989586621679625090"><span id="local-6989586621679625091"><span class="annot"><a href="Distribution.Compat.Lens.html#.%3D"><span class="hs-operator hs-type">(.=)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#MonadState"><span class="hs-identifier hs-type">MonadState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625091"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625090"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625091"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625091"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625089"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625088"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625088"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625090"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-177"></span><span id="local-6989586621679624865"><span class="annot"><span class="annottext">ASetter s s a b
</span><a href="#local-6989586621679624865"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id=".%3D"><span class="annot"><span class="annottext">.= :: forall s (m :: * -&gt; *) a b.
MonadState s m =&gt;
ASetter s s a b -&gt; b -&gt; m ()
</span><a href="Distribution.Compat.Lens.html#.%3D"><span class="hs-operator hs-var hs-var">.=</span></a></span></span><span> </span><span id="local-6989586621679624864"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624864"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(s -&gt; s) -&gt; m ()
forall s (m :: * -&gt; *). MonadState s m =&gt; (s -&gt; s) -&gt; m ()
</span><a href="../../mtl/src/Control.Monad.State.Class.html#modify"><span class="hs-identifier hs-var">modify</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ASetter s s a b
</span><a href="#local-6989586621679624865"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">ASetter s s a b -&gt; b -&gt; s -&gt; s
forall s t a b. ASetter s t a b -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#.~"><span class="hs-operator hs-var">.~</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624864"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-178"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">.=</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-179"></span><span>
</span><span id="line-180"></span><span id="local-6989586621679625078"><span id="local-6989586621679625079"><span id="local-6989586621679625080"><span id="local-6989586621679625081"><span class="annot"><a href="Distribution.Compat.Lens.html#%3F%3D"><span class="hs-operator hs-type">(?=)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#MonadState"><span class="hs-identifier hs-type">MonadState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625081"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625080"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625081"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625081"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625079"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625078"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625078"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625080"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-181"></span><span id="local-6989586621679624861"><span class="annot"><span class="annottext">ASetter s s a (Maybe b)
</span><a href="#local-6989586621679624861"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="%3F%3D"><span class="annot"><span class="annottext">?= :: forall s (m :: * -&gt; *) a b.
MonadState s m =&gt;
ASetter s s a (Maybe b) -&gt; b -&gt; m ()
</span><a href="Distribution.Compat.Lens.html#%3F%3D"><span class="hs-operator hs-var hs-var">?=</span></a></span></span><span> </span><span id="local-6989586621679624860"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624860"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(s -&gt; s) -&gt; m ()
forall s (m :: * -&gt; *). MonadState s m =&gt; (s -&gt; s) -&gt; m ()
</span><a href="../../mtl/src/Control.Monad.State.Class.html#modify"><span class="hs-identifier hs-var">modify</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ASetter s s a (Maybe b)
</span><a href="#local-6989586621679624861"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">ASetter s s a (Maybe b) -&gt; b -&gt; s -&gt; s
forall s t a b. ASetter s t a (Maybe b) -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#%3F~"><span class="hs-operator hs-var">?~</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624860"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-182"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">?=</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-183"></span><span>
</span><span id="line-184"></span><span id="local-6989586621679625070"><span id="local-6989586621679625071"><span id="local-6989586621679625072"><span id="local-6989586621679625073"><span class="annot"><a href="Distribution.Compat.Lens.html#%25%3D"><span class="hs-operator hs-type">(%=)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../mtl/src/Control.Monad.State.Class.html#MonadState"><span class="hs-identifier hs-type">MonadState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625073"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625072"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ASetter"><span class="hs-identifier hs-type">ASetter</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625073"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625073"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625071"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625070"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625071"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625070"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625072"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span></span></span></span></span><span>
</span><span id="line-185"></span><span id="local-6989586621679624857"><span class="annot"><span class="annottext">ASetter s s a b
</span><a href="#local-6989586621679624857"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="%25%3D"><span class="annot"><span class="annottext">%= :: forall s (m :: * -&gt; *) a b.
MonadState s m =&gt;
ASetter s s a b -&gt; (a -&gt; b) -&gt; m ()
</span><a href="Distribution.Compat.Lens.html#%25%3D"><span class="hs-operator hs-var hs-var">%=</span></a></span></span><span> </span><span id="local-6989586621679624856"><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624856"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(s -&gt; s) -&gt; m ()
forall s (m :: * -&gt; *). MonadState s m =&gt; (s -&gt; s) -&gt; m ()
</span><a href="../../mtl/src/Control.Monad.State.Class.html#modify"><span class="hs-identifier hs-var">modify</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ASetter s s a b
</span><a href="#local-6989586621679624857"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">ASetter s s a b -&gt; (a -&gt; b) -&gt; s -&gt; s
forall s t a b. ASetter s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#%25~"><span class="hs-operator hs-var">%~</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624856"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-186"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">%=</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-187"></span><span>
</span><span id="line-188"></span><span id="local-6989586621679625062"><span id="local-6989586621679625063"><span id="local-6989586621679625064"><span id="local-6989586621679625065"><span class="annot"><a href="Distribution.Compat.Lens.html#%5E%23"><span class="hs-operator hs-type">(^#)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679625065"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier hs-type">ALens</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625065"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625064"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625063"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625062"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625063"><span class="hs-identifier hs-type">a</span></a></span></span></span></span></span><span>
</span><span id="line-189"></span><span id="local-6989586621679624855"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624855"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="%5E%23"><span class="annot"><span class="annottext">^# :: forall s t a b. s -&gt; ALens s t a b -&gt; a
</span><a href="Distribution.Compat.Lens.html#%5E%23"><span class="hs-operator hs-var hs-var">^#</span></a></span></span><span> </span><span id="local-6989586621679624854"><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624854"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ALens s t a b -&gt; s -&gt; a
forall s t a b. ALens s t a b -&gt; s -&gt; a
</span><a href="Distribution.Compat.Lens.html#aview"><span class="hs-identifier hs-var">aview</span></a></span><span> </span><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624854"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624855"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-190"></span><span>
</span><span id="line-191"></span><span id="local-6989586621679625054"><span id="local-6989586621679625055"><span id="local-6989586621679625056"><span id="local-6989586621679625057"><span class="annot"><a href="Distribution.Compat.Lens.html#%23~"><span class="hs-operator hs-type">(#~)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier hs-type">ALens</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625057"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625056"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625055"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625054"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625054"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625057"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625056"><span class="hs-identifier hs-type">t</span></a></span></span></span></span></span><span>
</span><span id="line-192"></span><span id="%23~"><span class="annot"><span class="annottext">#~ :: forall s t a b. ALens s t a b -&gt; b -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#%23~"><span class="hs-operator hs-var hs-var">(#~)</span></a></span></span><span> </span><span id="local-6989586621679624853"><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624853"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624852"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624852"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span id="local-6989586621679624851"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624851"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">b -&gt; Pretext a b t -&gt; t
forall b a t. b -&gt; Pretext a b t -&gt; t
</span><a href="Distribution.Compat.Lens.html#pretextPeek"><span class="hs-identifier hs-var">pretextPeek</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624852"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624853"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Pretext a b b
forall a b. a -&gt; Pretext a b b
</span><a href="Distribution.Compat.Lens.html#pretextSell"><span class="hs-identifier hs-var">pretextSell</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624851"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-193"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">#~</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-194"></span><span>
</span><span id="line-195"></span><span id="local-6989586621679625043"><span id="local-6989586621679625044"><span id="local-6989586621679625045"><span id="local-6989586621679625046"><span class="annot"><a href="Distribution.Compat.Lens.html#%23%25~"><span class="hs-operator hs-type">(#%~)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier hs-type">ALens</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625046"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625045"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625044"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625043"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625044"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625043"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625046"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625045"><span class="hs-identifier hs-type">t</span></a></span></span></span></span></span><span>
</span><span id="line-196"></span><span id="%23%25~"><span class="annot"><span class="annottext">#%~ :: forall s t a b. ALens s t a b -&gt; (a -&gt; b) -&gt; s -&gt; t
</span><a href="Distribution.Compat.Lens.html#%23%25~"><span class="hs-operator hs-var hs-var">(#%~)</span></a></span></span><span> </span><span id="local-6989586621679624849"><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624849"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624848"><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624848"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679624847"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624847"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(a -&gt; b) -&gt; Pretext a b t -&gt; t
forall a b t. (a -&gt; b) -&gt; Pretext a b t -&gt; t
</span><a href="Distribution.Compat.Lens.html#pretextPeeks"><span class="hs-identifier hs-var">pretextPeeks</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624848"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624849"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Pretext a b b
forall a b. a -&gt; Pretext a b b
</span><a href="Distribution.Compat.Lens.html#pretextSell"><span class="hs-identifier hs-var">pretextSell</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624847"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-197"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="hs-pragma">(</span><span class="hs-pragma">#%~</span><span class="hs-pragma">)</span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-198"></span><span>
</span><span id="line-199"></span><span id="local-6989586621679625142"><span id="local-6989586621679625143"><span class="annot"><a href="Distribution.Compat.Lens.html#pretextSell"><span class="hs-identifier hs-type">pretextSell</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679625143"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625143"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625142"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625142"><span class="hs-identifier hs-type">b</span></a></span></span></span><span>
</span><span id="line-200"></span><span id="pretextSell"><span class="annot"><span class="annottext">pretextSell :: forall a b. a -&gt; Pretext a b b
</span><a href="Distribution.Compat.Lens.html#pretextSell"><span class="hs-identifier hs-var hs-var">pretextSell</span></a></span></span><span> </span><span id="local-6989586621679624845"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624845"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f b)
-&gt; Pretext a b b
forall a b t.
(forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t)
-&gt; Pretext a b t
</span><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-var">Pretext</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679624842"><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624842"><span class="hs-identifier hs-var">afb</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624842"><span class="hs-identifier hs-var">afb</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624845"><span class="hs-identifier hs-var">a</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-201"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#pretextSell"><span class="hs-pragma hs-type">pretextSell</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-202"></span><span>
</span><span id="line-203"></span><span id="local-6989586621679625036"><span id="local-6989586621679625037"><span id="local-6989586621679625038"><span class="annot"><a href="Distribution.Compat.Lens.html#pretextPeeks"><span class="hs-identifier hs-type">pretextPeeks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625038"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625037"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625038"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625037"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625036"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625036"><span class="hs-identifier hs-type">t</span></a></span></span></span></span><span>
</span><span id="line-204"></span><span id="pretextPeeks"><span class="annot"><span class="annottext">pretextPeeks :: forall a b t. (a -&gt; b) -&gt; Pretext a b t -&gt; t
</span><a href="Distribution.Compat.Lens.html#pretextPeeks"><span class="hs-identifier hs-var hs-var">pretextPeeks</span></a></span></span><span> </span><span id="local-6989586621679624839"><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624839"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span id="local-6989586621679624838"><span class="annot"><span class="annottext">forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="#local-6989586621679624838"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Identity t -&gt; t
forall a. Identity a -&gt; a
</span><a href="../../base/src/Data.Functor.Identity.html#runIdentity"><span class="hs-identifier hs-var hs-var">runIdentity</span></a></span><span> </span><span class="annot"><span class="annottext">(Identity t -&gt; t) -&gt; Identity t -&gt; t
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Identity b) -&gt; Identity t
forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="#local-6989586621679624838"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679624837"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624837"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">b -&gt; Identity b
forall a. a -&gt; Identity a
</span><a href="../../base/src/Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-var">Identity</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624839"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679624837"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-205"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#pretextPeeks"><span class="hs-pragma hs-type">pretextPeeks</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-206"></span><span>
</span><span id="line-207"></span><span id="local-6989586621679625047"><span id="local-6989586621679625048"><span id="local-6989586621679625049"><span class="annot"><a href="Distribution.Compat.Lens.html#pretextPeek"><span class="hs-identifier hs-type">pretextPeek</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="#local-6989586621679625049"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625048"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625049"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625047"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625047"><span class="hs-identifier hs-type">t</span></a></span></span></span></span><span>
</span><span id="line-208"></span><span id="pretextPeek"><span class="annot"><span class="annottext">pretextPeek :: forall b a t. b -&gt; Pretext a b t -&gt; t
</span><a href="Distribution.Compat.Lens.html#pretextPeek"><span class="hs-identifier hs-var hs-var">pretextPeek</span></a></span></span><span> </span><span id="local-6989586621679624835"><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624835"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span id="local-6989586621679624834"><span class="annot"><span class="annottext">forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="#local-6989586621679624834"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Identity t -&gt; t
forall a. Identity a -&gt; a
</span><a href="../../base/src/Data.Functor.Identity.html#runIdentity"><span class="hs-identifier hs-var hs-var">runIdentity</span></a></span><span> </span><span class="annot"><span class="annottext">(Identity t -&gt; t) -&gt; Identity t -&gt; t
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(a -&gt; Identity b) -&gt; Identity t
forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="#local-6989586621679624834"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">b -&gt; Identity b
forall a. a -&gt; Identity a
</span><a href="../../base/src/Data.Functor.Identity.html#Identity"><span class="hs-identifier hs-var">Identity</span></a></span><span> </span><span class="annot"><span class="annottext">b
</span><a href="#local-6989586621679624835"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-209"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#pretextPeek"><span class="hs-pragma hs-type">pretextPeek</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-210"></span><span>
</span><span id="line-211"></span><span id="local-6989586621679625144"><span id="local-6989586621679625145"><span id="local-6989586621679625146"><span class="annot"><a href="Distribution.Compat.Lens.html#pretextPos"><span class="hs-identifier hs-type">pretextPos</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625146"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625145"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625144"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625146"><span class="hs-identifier hs-type">a</span></a></span></span></span></span><span>
</span><span id="line-212"></span><span id="pretextPos"><span class="annot"><span class="annottext">pretextPos :: forall a b t. Pretext a b t -&gt; a
</span><a href="Distribution.Compat.Lens.html#pretextPos"><span class="hs-identifier hs-var hs-var">pretextPos</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span id="local-6989586621679624831"><span class="annot"><span class="annottext">forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="#local-6989586621679624831"><span class="hs-identifier hs-var">m</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Const a t -&gt; a
forall {k} a (b :: k). Const a b -&gt; a
</span><a href="../../base/src/Data.Functor.Const.html#getConst"><span class="hs-identifier hs-var hs-var">getConst</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; Const a b) -&gt; Const a t
forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="#local-6989586621679624831"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Const a b
forall {k} a (b :: k). a -&gt; Const a b
</span><a href="../../base/src/Data.Functor.Const.html#Const"><span class="hs-identifier hs-var">Const</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-213"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#pretextPos"><span class="hs-pragma hs-type">pretextPos</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-214"></span><span>
</span><span id="line-215"></span><span id="local-6989586621679625014"><span id="local-6989586621679625015"><span id="local-6989586621679625016"><span id="local-6989586621679625017"><span id="local-6989586621679625018"><span class="annot"><a href="Distribution.Compat.Lens.html#cloneLens"><span class="hs-identifier hs-type">cloneLens</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-type">Functor</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625018"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#ALens"><span class="hs-identifier hs-type">ALens</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625017"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625016"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625015"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625014"><span class="hs-identifier hs-type">b</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#LensLike"><span class="hs-identifier hs-type">LensLike</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625018"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625017"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625016"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625015"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625014"><span class="hs-identifier hs-type">b</span></a></span></span></span></span></span></span><span>
</span><span id="line-216"></span><span id="cloneLens"><span class="annot"><span class="annottext">cloneLens :: forall (f :: * -&gt; *) s t a b.
Functor f =&gt;
ALens s t a b -&gt; LensLike f s t a b
</span><a href="Distribution.Compat.Lens.html#cloneLens"><span class="hs-identifier hs-var hs-var">cloneLens</span></a></span></span><span> </span><span id="local-6989586621679624828"><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624828"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621679624827"><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624827"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679624826"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624826"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Pretext a b t
-&gt; forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
forall a b t.
Pretext a b t
-&gt; forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="Distribution.Compat.Lens.html#runPretext"><span class="hs-identifier hs-var hs-var">runPretext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ALens s t a b
</span><a href="#local-6989586621679624828"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; Pretext a b b
forall a b. a -&gt; Pretext a b b
</span><a href="Distribution.Compat.Lens.html#pretextSell"><span class="hs-identifier hs-var">pretextSell</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679624826"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624827"><span class="hs-identifier hs-var">f</span></a></span><span>
</span><span id="line-217"></span><span class="hs-pragma">{-# INLINE</span><span> </span><span class="annot"><a href="Distribution.Compat.Lens.html#cloneLens"><span class="hs-pragma hs-type">cloneLens</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-218"></span><span>
</span><span id="line-219"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-220"></span><span class="hs-comment">-- Comonads</span><span>
</span><span id="line-221"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-222"></span><span>
</span><span id="line-223"></span><span class="hs-comment">-- | @lens@ variant is also parametrised by profunctor.</span><span>
</span><span id="line-224"></span><span class="hs-keyword">data</span><span> </span><span id="Pretext"><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-var">Pretext</span></a></span></span><span> </span><span id="local-6989586621679625032"><span class="annot"><a href="#local-6989586621679625032"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span id="local-6989586621679625031"><span class="annot"><a href="#local-6989586621679625031"><span class="hs-identifier hs-type">b</span></a></span></span><span> </span><span id="local-6989586621679625030"><span class="annot"><a href="#local-6989586621679625030"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="Pretext"><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-var">Pretext</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span id="runPretext"><span class="annot"><span class="annottext">forall a b t.
Pretext a b t
-&gt; forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t
</span><a href="Distribution.Compat.Lens.html#runPretext"><span class="hs-identifier hs-var hs-var">runPretext</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679625034"><span class="annot"><a href="#local-6989586621679625034"><span class="hs-identifier hs-type">f</span></a></span></span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-type">Functor</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625034"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679625032"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625034"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625031"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679625034"><span class="hs-identifier hs-type">f</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679625030"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-225"></span><span>
</span><span id="line-226"></span><span id="local-6989586621679624997"><span id="local-6989586621679624998"><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679624820"><span class="annot"><a href="../../base/src/GHC.Base.html#Functor"><span class="hs-identifier hs-type">Functor</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624998"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679624997"><span class="hs-identifier hs-type">b</span></a></span><span class="hs-special">)</span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-227"></span><span>    </span><span id="local-6989586621679624818"><span class="annot"><span class="annottext">fmap :: forall a b. (a -&gt; b) -&gt; Pretext a b a -&gt; Pretext a b b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var hs-var hs-var hs-var">fmap</span></a></span></span><span> </span><span id="local-6989586621679624817"><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624817"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-type">Pretext</span></a></span><span> </span><span id="local-6989586621679624816"><span class="annot"><span class="annottext">forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f a
</span><a href="#local-6989586621679624816"><span class="hs-identifier hs-var">pretext</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f b)
-&gt; Pretext a b b
forall a b t.
(forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f t)
-&gt; Pretext a b t
</span><a href="Distribution.Compat.Lens.html#Pretext"><span class="hs-identifier hs-var">Pretext</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621679624812"><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624812"><span class="hs-identifier hs-var">afb</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(a -&gt; b) -&gt; f a -&gt; f b
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; b
</span><a href="#local-6989586621679624817"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(a -&gt; f b) -&gt; f a
forall (f :: * -&gt; *). Functor f =&gt; (a -&gt; f b) -&gt; f a
</span><a href="#local-6989586621679624816"><span class="hs-identifier hs-var">pretext</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; f b
</span><a href="#local-6989586621679624812"><span class="hs-identifier hs-var">afb</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span></span></span><span>
</span><span id="line-228"></span><span>
</span><span id="line-229"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-230"></span><span class="hs-comment">-- Documentation</span><span>
</span><span id="line-231"></span><span class="hs-comment">-------------------------------------------------------------------------------</span><span>
</span><span id="line-232"></span><span>
</span><span id="line-233"></span><span class="hs-comment">-- $development</span><span>
</span><span id="line-234"></span><span class="hs-comment">--</span><span>
</span><span id="line-235"></span><span class="hs-comment">-- We cannot depend on @template-haskell@, because Cabal is a boot library.</span><span>
</span><span id="line-236"></span><span class="hs-comment">-- This fact makes defining optics a manual task. Here is a small recipe to</span><span>
</span><span id="line-237"></span><span class="hs-comment">-- make the process less tedious.</span><span>
</span><span id="line-238"></span><span class="hs-comment">--</span><span>
</span><span id="line-239"></span><span class="hs-comment">-- First start a repl</span><span>
</span><span id="line-240"></span><span class="hs-comment">--</span><span>
</span><span id="line-241"></span><span class="hs-comment">-- &gt; cabal new-repl Cabal:hackage-tests</span><span>
</span><span id="line-242"></span><span class="hs-comment">--</span><span>
</span><span id="line-243"></span><span class="hs-comment">-- Because @--extra-package@ isn't yet implemented, we use a test-suite</span><span>
</span><span id="line-244"></span><span class="hs-comment">-- with @generics-sop@ dependency.</span><span>
</span><span id="line-245"></span><span class="hs-comment">--</span><span>
</span><span id="line-246"></span><span class="hs-comment">-- In the repl, we load a helper script:</span><span>
</span><span id="line-247"></span><span class="hs-comment">--</span><span>
</span><span id="line-248"></span><span class="hs-comment">-- &gt; :l ../generics-sop-lens.hs</span><span>
</span><span id="line-249"></span><span class="hs-comment">--</span><span>
</span><span id="line-250"></span><span class="hs-comment">-- Now we are set up to derive lenses!</span><span>
</span><span id="line-251"></span><span class="hs-comment">--</span><span>
</span><span id="line-252"></span><span class="hs-comment">-- &gt; :m +Distribution.Types.SourceRepo</span><span>
</span><span id="line-253"></span><span class="hs-comment">-- &gt; putStr $ genericLenses (Proxy :: Proxy SourceRepo)</span><span>
</span><span id="line-254"></span><span class="hs-comment">--</span><span>
</span><span id="line-255"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-256"></span><span class="hs-comment">-- repoKind :: Lens' SourceRepo RepoKind</span><span>
</span><span id="line-257"></span><span class="hs-comment">-- repoKind f s = fmap (\\x -&gt; s { T.repoKind = x }) (f (T.repoKind s))</span><span>
</span><span id="line-258"></span><span class="hs-comment">-- \{-# INLINE repoKind #-\}</span><span>
</span><span id="line-259"></span><span class="hs-comment">-- ...</span><span>
</span><span id="line-260"></span><span class="hs-comment">-- @</span><span>
</span><span id="line-261"></span><span class="hs-comment">--</span><span>
</span><span id="line-262"></span><span class="hs-comment">-- /Note:/ You may need to adjust type-aliases, e.g. `String` to `FilePath`.</span><span>
</span><span id="line-263"></span></pre></body></html>